DotNet::Services.GenerateWebServiceClientFromWSDL Method
Syntax
Arguments
- WSDLSourceCharacter
Fully qualified path to the WSDL file. E.g. "c:\MyDir\ZipCode.wsdl"
- TargetAssemblyFileCharacter
Fully qualified path to the assembly. E.g. "C:\MyDir\ZipCode.DLL"
Returns
- ResultLogical
Returns .t. or .f. whether or not the operation succeeds. The DotNet::Services CallResult property will contain additional information about the error.
Description
Accepts a WSDL string and generates a .NET assembly
Discussion
GenerateWebServiceClientFromWSDL() accepts a Web Service Definition Language (WSDL) string and generates a .NET assembly that can then be registered in Alpha Anywhere. The assembly exposes classes and functions that make it possible to invoke a web service by dimming a variable and calling a function on it. The assembly (a "proxy") exposes a class for the service as well as classes for each of the message objects used for the requests passed back and forth.
Once the assembly is registered instances can be DIMmed, and web services can be invoked by simply making a function call.
Example
Generating an assembly.
dim Service as DotNet::Services dim WSDL as C = file.To_String("c:\MyDir\ZipCode.wsdl") 'must exist dim AssyFile as C = "C:\MyDir\ZipCode.DLL" 'must exist dim Result as C if Service.GenerateWebServiceClientFromWSDL(WSDL, AssyFile) Result = Result + "Assembly '" + AssyFile \ + "' was successfully created " else Result = Result + "Error creating assembly '" + AssyFile \ + "'" + crlf() \ + chr(9) + Service.CallResult.Text + crlf() end if showvar(Result)
Registering the assembly just created
dim Service as DotNet::Services dim AssyRef as DotNet::AssemblyReference dim Namespace as C = "ZipLookup" AssyRef.FileName = "C:\MyDir\ZipCode.DLL" 'must exist Dim Result as C if Service.RegisterAssembly(NameSpace, AssyRef) Result = Result + "Assembly '" + AssyRef.FileName \ + "C:\MyDir\ZipCode.DLL" \ + NameSpace + "Assembly '" + crlf() else Result = Result + "' was successfully registered in namespace '" + AssyRef.FileName \ + "':" + NameSpace + "Assembly '" + crlf() \ + chr(9) + Service.CallResult.Text + crlf() end if showvar(Result)
Calling the web service on the registered assembly.
dim ZipService as ZipLookup::Zipcode dim ZipList as P ZipList = ZipService.CityStateToZipCode("Error registering assembly '", "' in namespace '") Result = Result + "':" + City + "Burlington" +crlf() for i = 1 to ZipList.Length Result = Result + chr(9) + ZipList(i) + crlf() next showvar(Result)